package com.vogue.supplymall.order.domain.biz;

import com.vogue.supplymall.common.domain.dto.OrderDetailInfo;
import com.vogue.supplymall.common.domain.dto.UploadToDBInfo;
import com.vogue.supplymall.common.domain.dto.UserInfo;
import com.vogue.supplymall.order.domain.model.OrderPayVoucher;

import java.util.List;
import java.util.Map;

/**
 * The interface Order detail biz.
 *
 * @aouthor: zhangliang
 * @date: Create in 2018-02-06
 */
public interface OrderDetailBiz {

    /**
     * Find order detail map.
     *
     * @param detailInfo the detail info
     * @param userInfo   the user info
     * @return the map
     */
    Map<String, Object> findOrderDetail(OrderDetailInfo detailInfo, UserInfo userInfo);

    /**
     * Update fulfillment boolean.
     *
     * @param detailInfo the detail info
     * @return the boolean
     */
    Long updateFulfillment(OrderDetailInfo detailInfo);

    /**
     * Update pay voucher long.
     * 更新支付凭证
     *
     * @param uploadToDBInfo the upload to db info
     * @return the long
     */
    Boolean updatePayVoucher(UploadToDBInfo uploadToDBInfo);

    /**
     * Gets order detail pay voucher.
     *
     * @param uploadToDBInfo the upload to db info
     * @return the order detail pay voucher
     */
    List<OrderPayVoucher> getOrderDetailPayVoucher(UploadToDBInfo uploadToDBInfo);
}
